import axios, { AxiosError } from 'axios';
import type { InternalAxiosRequestConfig, AxiosResponse } from 'axios';
import router from '@/router'
import { ElMessage } from 'element-plus'

const getToken = () => {
  return localStorage.getItem('token');
};

// 创建axios实例
const service = axios.create({
    // baseURL:'http://124.70.196.178:8082/intelligent_control_webservice_hnlg/',//远程
    baseURL:'http://192.168.10.10:8080/',//现场
  timeout: 5000, // 请求超时时间
});

// 请求拦截器
service.interceptors.request.use(
  (config: InternalAxiosRequestConfig) => {
    // 在发送请求之前做些什么
      config.headers["Authorization"] = getToken()
      return config;
  },
  (error: AxiosError) => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  (response: AxiosResponse) => {
    // 对响应数据做点什么
      if (response.data.code === 421) {
          localStorage.removeItem('token')
          // 跳转登录页面
          router.push('/login')
      }else if (response.data.code === 200) {
          return response.data;
      }else {
          ElMessage.error(response.data.msg)
      }

  },
  (error: AxiosError) => {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

export default service;
